<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vue.js"></script>
</head>
<body>
    <script>
        /* 
        ES5
        Object.defineProperty(obj/arr,prop/index,descriptor)
        Object.defineProperties(obj/arr,descriptor)
        作用：给对象/数组定义属性（一次只能定义一个属性），
            目的是 对属性做 约束 和 限制
        
        属性描述符，是一个配置对象，可以包括如下配置选项：
            value，    configurable， enumerable，    writable，   get(){},set(){} 
          值/undefind,删除ture/false,枚举ture/false,修改true/false, 访问器
        注意事项：
            添加value和writable属性后，不能在添加getter和setter访问器，二者不共存。
        */
       let man={
        name:'xxx'
       }
       Object.defineProperties(man,{
        six:{
            value:'女',
            configurable:false,
            writable:true,
            enumerable:true,
        },
        height:{
            value:'168cm',
            configurable:false,
            writable:true,
            enumerable:false,
        },
        
       });
       console.log(man);

       let arr=[1,2,3,4]
       Object.defineProperties(arr,{
        3:{
            value:33,
            configurable:false,
            writable:true,
            enumerable:false,
        },
        4:{
            value:44
        },
        5:{
            value:55
        }

       })
    </script>
</body>
</html>